Portions of this patent application contain materials that are subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
This invention generally relates to improvements in computer systems, and more particularly to a system and method for service creation in an object-oriented operating system.
Computer systems in general are very rigid. Application developers and users of the system must often know intimate details of hardware protocol and configurations to provide a system in which information flows smoothly. Details of each particular type of port and IO device must be dealt with on an individual basis. Application developers and users must also be kept constantly abreast of each change in the system in order to provide corresponding changes to the software and hardware so that the changes can be fully exploited.
The rate at which IO devices change, as well as the rate of change of intermediate elements used to transfer information to and from an IO device, is extremely fast. Each change requires a learning process of system users so that the system may be kept performing in an optimum manner.
A computer system can be thought of as a large collection of clients which need services performed. Clients could be considered to be virtually any part of the system which may need something. For example, the CPU could be considered to be a client that needs a service performed by a particular element in the system. The performance of the service may involve many steps, and many elements to provide the requested service. A service could be considered to be anything that provides something needed by another entity in the system. For example, a particular chip may provide a particular type of digital signal processing as a service for another system element. A single element could at one time be a client, and at another time provide a service to a client.
The interplay of clients and services often requires great attention by, developers and users to make the requests for services, and provision of services, a smooth process. The protocol for services requests and provision is often very inflexible, and requires intervention in minute details to change the protocol. In many respects, requests for services and providing services could be considered to be set in stone.
There is therefore, a need to provide a flexible system for requesting and providing services. The system needs to overcome the above difficulties concerning the level of detail involved, the problems associated with system changes, and the overall rigidity of software and hardware between clients and service providers.
Accordingly, it is a primary object of the present invention to provide a system and method for improving the interaction between clients and services.
It is another object of the present invention to provide a system and method for improving the flexibility in adjusting to changes in a system of clients and service providers.
It is vet another object of the present invention to provide a system and method for allowing requests for services without concern for details of the service requested.
It is another object of the present invention to provide a system and method for allowing requests for services without concern for details of the service provider.
These and other objects are realized by an interface framework that creates services in response to a request. The system receives an interface reference, and from the reference creates a previously nonexistent service. The interface reference creates in interface maker, which performs the actual creation and activation of a requested service. Activation of the service can be thought of as a two step process in which a service stack description is created, and from this description a service stack is created.
The interface reference is an entity that encapsulates all information necessary to create a service. The client has the interface reference, and activates the reference to create the service needed. The interface reference first creates a service stack description by determining the service interfaces making up the top and bottom of the service stack, and then searching to find a set of services between the top and bottom interfaces that will form the required service stack. The interface maker serves the purpose of xe2x80x9cbufferingxe2x80x9d service provider classes from the service stack framework.
From the service stack description, interface makers corresponding to the stack description are created. This creation occurs from the bottom of the description up. The service stack description can be thought of as a list of references to interface makers.